package GUI;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * @ClassName : JCheckBoxDemo
 * @Author : LV88VL
 * @Date: 2021/4/1 14:46
 * @Description : JCheckBox组件
 *              AbstractButton：所有按钮的基类
 *              常见的使用方法：
 *                  public String getText()：返回按钮上的文本
 *                  public void SetText(String text)：设置按钮上的文本
 *                  public void setEnabled(boolean b)：启用或者禁用按钮
 *                  public void setSelected(boolean b)：设置按钮的状态
 *
 *              JCheckBox的构造方法：
 *                  JCheckBox() ：创建一个最初选中的复选框按钮没有文字，没有图标。
 *                  JCheckBox(String text) ：创建一个最初选中的复选框的文本。
 *                  JCheckBox(String text, boolean selected) ：创建一个带有文本的复选框，并指定它是否最初选择。
 *
 */
public class JCheckBoxDemo extends JFrame {
    private JCheckBox italic;//斜体
    private JCheckBox bold;//粗体
    private JLabel label;
    public JCheckBoxDemo(){
        //创建一个JLabel标签，标签文字居中对齐
        label=new JLabel("你好",JLabel.CENTER);
        //设置标签文本的字体
        label.setFont(new Font("黑体",Font.PLAIN,20));
        this.add(label);
        //创建一个JPanel面板
        JPanel panel=new JPanel();
        //创建两个复选框
        italic =new JCheckBox("ITALIC");
        bold=new JCheckBox("BOLD");
        //为复选框定义监听器
        ActionListener listener =new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                int mode = 0;
                if (bold.isSelected()) {
                    mode +=Font.BOLD;
                }
                if (italic.isSelected()) {
                    mode +=Font.ITALIC;
                }
                label.setFont(new Font("黑体",mode,20));
            }
        };
        //为复选框添加监听器
        italic.addActionListener(listener);
        bold.addActionListener(listener);
        //在JPanel面板中添加复选框
        panel.add(italic);
        panel.add(bold);
        //在SOUTH区域添加JPanel面板
        this.add(panel,BorderLayout.SOUTH);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setSize(300,300);
        this.setVisible(true);
    }
    public static void main(String[] args) {
        new JCheckBoxDemo();
    }
}
